package org.wzl.databasesync.service;

import org.wzl.databasesync.dto.DatabaseInfo;
import org.wzl.databasesync.dto.FiledDesc;
import org.wzl.databasesync.dto.TableDesc;
import org.wzl.databasesync.service.impl.DatabaseSyncServiceImpl;

import java.util.List;

public interface SqlGenService {
    /**
     * 获取所有表信息
     * @param databaseInfo  数据库信息
     * @return              表信息
     * @throws Exception
     */
    List<TableDesc> getAllTables(DatabaseInfo databaseInfo) throws Exception;

    /**
     * 获取所有表字段信息
     * @param databaseInfo  数据库信息
     * @param tableName     表名
     * @return              字段信息
     */
    TableDesc getTableDesc(DatabaseInfo databaseInfo, String tableName);

    /**
     * 生成建表语句
     */
    String createTableSql(TableDesc addTable);

    /**
     * 生成删表语句
     */
    String dropTableSql(TableDesc deleteTable);

    /**
     * 生成表字段修改语句
     */
    String alterTableSql(DatabaseSyncServiceImpl.UpdateTable updateTable);
}
